package sistema.controleVendas.entidades;

import java.io.Serializable;
import java.util.ArrayList;

import javax.persistence.CascadeType;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.MappedSuperclass;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;

@MappedSuperclass
public class Pessoa implements Serializable{
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private int id;
	private String nome;

	@ManyToOne
	@JoinColumn(name="interesse_id")
	private Interesse interesse;

	@ManyToOne(cascade={CascadeType.ALL})
	@JoinColumn(name="endereco_id")
	private Endereco endereco;

	@OneToOne(cascade={CascadeType.ALL})
	private Usuario usuario;

	@OneToMany(cascade={CascadeType.ALL})
	private ArrayList<Transacao> transacao;

	@OneToMany(cascade={CascadeType.ALL})
	private ArrayList<Contas> contas;
	
	@OneToMany(cascade={CascadeType.ALL})
	private ArrayList<Contato> contatos;

	public Pessoa(){}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public Endereco getEndereco() {
		return endereco;
	}

	public void setEndereco(Endereco endereco) {
		this.endereco = endereco;
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public ArrayList<Transacao> getTransacao() {
		return transacao;
	}

	public void setTransacao(ArrayList<Transacao> transacao) {
		this.transacao = transacao;
	}

	public ArrayList<Contas> getContas() {
		return contas;
	}

	public void setContas(ArrayList<Contas> contas) {
		this.contas = contas;
	}

	public Interesse getInteresse() {
		return interesse;
	}

	public void setInteresse(Interesse interesse) {
		this.interesse = interesse;
	}

	public ArrayList<Contato> getContatos() {
		return contatos;
	}

	public void setContatos(ArrayList<Contato> contatos) {
		this.contatos = contatos;
	}


}
